<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
				数组(Array)
					-数组也是对象
					-他和普通的对象功能类似，来存储一些值
					-不同的时普通对象时使用字符串来作为属性名的
						而数组是使用数字来作为索引来操作元素（“数组中元素=属性）
					-索引就是从0开始的整数
					-数组的存储性能比普通的对象要好，在开发中我们经常使用数组来储存一些数据
					例子
						var arr = new Array();
						使用typeof检查数组时会返回object；
					-向数组中添加元素时
						数组[ 索引 ] = 值 ；
						arr[0] = 10 ;
					-向数组中读取
						console.log(arr[0]);
						如果读取不存在的索引，他不会报错会返回undefined
						如果我们像获取数组的长度arr.length
						对于非连续的数组，使用length会得到最大的索引加一
						尽量不要创建非连续的数组
						length可以修改数组的长度
						arr.length = 10；
						如果我们设置的长度大于会留出多余的位置
						如果修改的长度小于留出的位置则会删除多余的元素
						如果想在数组的最后添加可以使用arr[arr.length]
					-可以使用字面量来创建数组
						var arr = [];
						使用中括号来创建更加方便
						使用字面量创建数组时，可以在创建时就指定数组中的元素
						var arr = [1,2,3,4,5,10];
						使用构造函数创建函数时，也可以同时添加元素，将要添加的元素作为函数的参数来传递
						var arr2 = new Array(10,20,30)
						arr2 = new Array(10);
							这个方法时创建一个长度为10的数组
						arr  = [10]
							这个方法创建一个数组时创建一个只有一个元素10的数组
					-数组中的元素可以时任意的数据
						数组中可以放五大数据类型
						数组中可以放数组
						数组可以放对象
					-数组的方法
						push()
							-该方法可以在数组末尾添加一个或多个元素，并且返回数组的长度
							-可以将要添加的元素作为方法的参数传递
								这样这些元素将会自动添加到数组的末尾
							-该方法会将新的数组长度作为返回值返回
						pop()
							-该方法可以删除数组的最后一个元素
							-该方法会将数组的最后一个元素作为返回值返回
						unshift()
							-像数组开头添加一个或多个元素，并且返回新的数组长度
							-向前面插入元素之后，其他的元素索引会依次调整
						shift()
							-该方法可以删除数组的第一个元素
							-并将第一个元素作为返回值返回
					-数组的遍历
						-所谓遍历数组就是把数组中的元素全取出来
						-例子
							var arr = ["h1","h2","h3","h4"]
							for(var i = 0 ; i < arr.length ; i++){
								console.log(arr[i]);
							}
					-forEach()
						-一般我们都是用for遍历，
							在js中我们还有一种方法来遍历数组
							forEach()
								-IE8以上浏览器可以使用
						-forEach()方法需要一个函数作为参数
							arr.forEach(function(a){
								console.log(a);
							});
							这样创建函数不是由我们调用的，我们称为回调函数浏览器为我们调用
							数组中有几个元素就会执行几次，每次执行时，浏览器会将遍历到的元素
								以实参的方式传递进来，我们可以来定义形参来读取这些内容
							浏览器会在回调函数中传递三个参数
								第一个参数，就是当前正在遍历的元素
								第二个参数，就是当前正在遍历的元素的索引
								第三个参数，就是当前正在遍历的数组
								arr.forEach(function(value , index , obj)){
									console.log();
								}
					-slice()
						-可以用来在数组中提取指定元素
						-参数
							1.截取开始的位置的索引,包含开始索引
							2.截取结束的位置的索引，不包含结束索引
								如果不写第二个参数，此时会截取从开始索引往后的所有元素
							-索引可以传递一个负值，如果传递一个负值，从后往前计算	
						-例子
							var arr = [h1,h2,h3,h4,h5];
							var arrslice = arr.slice(0,2);
							console.log(arrslice);
							结果时h1,h2
					-splice()
						-可以删除数组中的指定元素
						-使用splice()会将指定元素从原数组中删除
							并将被删除的元素作为返回值
						-参数
							1.截取开始的位置的索引,包含开始索引
							2.表示删除的数量
							3.第三个及以后的参数，可以传递一些新的元素可以传递到开始位置的前面
						-例子
							var arr = ["小明"，"小红"，"小莲"，"小兰"，"小青"，"小可爱"]
							var result = arr.splice(3,0,"小白")；
							console.log(arr);
					-concat()
						-可以链接两个或多个数组，并将新的数组返回
						-该方法不会对原数组产生影响
						-例子
							var arr = [h1,h2,h3]
							var arr1 = [h3,h4,h5]
							var arr2 = [h4]
							var result = arr.concat(arr1,arr2,"h6");
							console.log(result);
					-join()
						-该方法可以将一个数组转换为一个字符串
						-该方法不会对原数组产生影响
						-在join()中可以指定一个字符串作为参数，这个字符串会成为数组中元素的链接符
							如果不指定链接符，则默认使用，作为字符串
					-reverse()
						-该方法用来反转数组（前面的去后面，后面的去前面）
						-该方法会直接修改原数组
					-sort()
						-可以用来对数组进行排序
						-也会影响原数组，默认使用Unicode编码进行排序
							即使对于纯数字的数组，也会使用Unicode编码进行排序
							所有对数字进行排序可能会得到一个错误的结果
						-可以在sort()添加一个回调函数，来指定排序的规则
							回调函数中需要定义两个形参
							浏览器将会分别使用数组中的元素作为实参去调用回调函数
							使用那个元素调用不确定，但是肯定的是在数组中a一定在b的签名
						-浏览器会根据回调函数的返回值来决定元素的顺序
							如果返回一个大于0的值，则元素会交换位置
							如果返回一个小于0的值，则元素位置不变
							如果返回一个0，则认为元素相等也不会交换位置
						-如果需要升序排列，则返回a-b
							如果需要降序排列，则返回b-a
			*/
		</script>
	</head>
	<body>
	</body>
</html>
